// dot . 元字符 匹配除换行符以外的任意单个字符
const str = `
<ul>
  <li>
    <a>肖生克的救赎</a>
    <p>上映时间: 1994-10-14 美国</p>
  </li>

  <li>
    <a>阿甘正传</a>
    <p>上映时间: 1994-07-06</p>
  </li>
</ul>`;

// 将a标签内的内容存储到一个对象之中 .*? 非贪婪匹配
const reg1 = /<li>\s+<a>(.*?)<\/a>\s+<p>(.*?)<\/p>\s+<\/li>/;
console.log(reg1.exec(str)[1]);
console.log(reg1.exec(str)[2]);

console.log("\n\ndotAll模式, 在最后加上//s 这样可以使.匹配任意字符");
const reg2 = /<li>.*?<a>(?<title>.*?)<\/a>.*?<p>(?<time>.*?)<\/p>/gs;

let result;
const data = [];
// 循环匹配
while (result = reg2.exec(str)) {
  // let { title, time } = result.groups;
  data.push(result.groups);
}

console.log(data);

